#include "StdAfx.h"
#include "MonoEffectXAPO.h"

int MonoEffectXAPO::EffectCount = 0;
int MonoEffectXAPO::SizeOfArrayDescriptors = 15;
XAUDIO2_EFFECT_DESCRIPTOR* MonoEffectXAPO::pEffectDescriptors = new XAUDIO2_EFFECT_DESCRIPTOR[MonoEffectXAPO::SizeOfArrayDescriptors];

MonoEffectXAPO::MonoEffectXAPO(int num, IXAudio2SourceVoice* pVoice):MonoEffect(num), pSourceVoice(pVoice)
{
}

MonoEffectXAPO::~MonoEffectXAPO(void)
{
	 delete[] pEffectDescriptors;

}


void MonoEffectXAPO::DisableEffect(void) 
{
	pSourceVoice->DisableEffect(GetNumberEffect());	
}

void MonoEffectXAPO::EnableEffect(void) 
{
	pSourceVoice->EnableEffect(GetNumberEffect());
}

bool MonoEffectXAPO::GetEffectState(void) 
{
	BOOL enable;
	pSourceVoice->GetEffectState(GetNumberEffect(), &enable);

	return enable;
}

IXAudio2SourceVoice* MonoEffectXAPO::GetSourceVoice(void) {

	return pSourceVoice;
}

int MonoEffectXAPO::GetEffectCount(void)
{
	return EffectCount;
}


void MonoEffectXAPO::AddEffectDescriptor(XAUDIO2_EFFECT_DESCRIPTOR EffectDescriptor)
{
	EffectCount++;
	if (EffectCount <= SizeOfArrayDescriptors) 
		pEffectDescriptors[EffectCount] = EffectDescriptor;
	else
		printf("%s", "Overflow array EffectDescriptors");
	return;
}

XAUDIO2_EFFECT_DESCRIPTOR* MonoEffectXAPO::GetEffectDescriptors(void)
{
	return &pEffectDescriptors[1];
}

